<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<meta charset="UTF-8" />
<title>Game Distribution - LOVE</title>
<meta name="generator" content="MediaWiki 1.24.2" />
<link rel="ExportRDF" type="application/rdf+xml" title="Game Distribution" href="" />
<link rel="shortcut icon" href="favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="opensearch_desc.php" title="LOVE (en)" />
<link rel="EditURI" type="application/rsd+xml" href="api.php_action_rsd" />
<link rel="alternate" hreflang="x-default" href="" />
<link rel="copyright" href="http://www.gnu.org/copyleft/fdl.html" />
<link rel="alternate" type="application/atom+xml" title="LOVE Atom feed" href="" />
<link rel="stylesheet" href="" />
<!--[if IE 6]><link rel="stylesheet" href="ie60fixes.css" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="ie70fixes.css" media="screen" /><![endif]--><meta name="ResourceLoaderDynamicStyles" content="" />
<link rel="stylesheet" href="" />
<style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
/* cache key: love2d_wiki:resourceloader:filter:minify-css:7:daf253d59690fd9cabb6b95510bce103 */</style>
<script src=""></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Game_Distribution","wgTitle":"Game Distribution","wgCurRevisionId":26223,"wgRevisionId":26223,"wgArticleId":423,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["LÖVE"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Game_Distribution","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"love","stubthreshold":0,"thumbsize":5,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"watchrollback":0,
"wllimit":250,"useeditwarning":1,"prefershttps":1,"language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"searchNs102":false,"searchNs103":false,"searchNs104":false,"searchNs105":false,"searchNs108":false,"searchNs109":false,"searchNs500":false,"searchNs501":false,"variant":"en"});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\"});},{},{});
/* cache key: love2d_wiki:resourceloader:filter:minify-js:7:201bb6cc0b4c032fe7bbe209a0125541 */
}</script>
<script>if(window.mw){
mw.loader.load(["ext.smw.style","mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Game_Distribution skin-love action-view">
<div id="globalWrapper">
		<div id="column-content">
			<div id="content" class="mw-body" role="main">
				<a id="top"></a>
				
				
						<div id="p-cactions" role="navigation">
			<h5>Views</h5>

			<div>
				<ul>
				<li id="ca-nstab-main" class="selected"><a href="" title="View the content page [c]" accesskey="c">Page</a></li>
				<li id="ca-talk"><a href="talk_game_distribution.html" title="Discussion about the content page [t]" accesskey="t">Discussion</a></li>
				<li id="ca-viewsource"><a href="" title="This page is protected.&#10;You can view its source [e]" accesskey="e">View source</a></li>
				<li id="ca-history"><a href="" rel="archives" title="Past revisions of this page [h]" accesskey="h">History</a></li>
				</ul>
							</div>
		</div>
	
				<h1 id="firstHeading" class="firstHeading" lang="en">Game Distribution</h1>

				<div id="bodyContent">
					<!-- <div id="siteSub">From LOVE</div> -->

					<!-- <div id="contentSub"></div> -->
										<!-- <div id="jump-to-nav" class="mw-jump">Jump to: <a href="#column-one">navigation</a>, <a href="#searchInput">search</a></div> -->

					<!-- start content -->
					<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><p>Once you have completed your game you surely want to make it available to others. In general you should first create a .love-file which can be either directly distributed (which requires users to have LÖVE installed) or used for platform specific packages.
</p><p>These are the preferred ways to distribute your game depending on target (all make use of the .love file):
</p>
<ul><li> Windows &#8594; <a href="#Creating_a_Windows_Executable" title="Game Distribution">Windows Executable</a></li>
<li> macOS &#8594; <a href="#Creating_a_macOS_Application" title="Game Distribution">macOS Application</a></li>
<li> Linux &#8594; plain .love file, or <a href="#Distribution_for_Linux" title="Game Distribution">Appimages</a></li></ul>
<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Create_a_.love-file"><span class="tocnumber">1</span> <span class="toctext">Create a .love-file</span></a>
<ul>
<li class="toclevel-2 tocsection-2"><a href="#Platform_Specific_Notes"><span class="tocnumber">1.1</span> <span class="toctext">Platform Specific Notes</span></a>
<ul>
<li class="toclevel-3 tocsection-3"><a href="#Windows"><span class="tocnumber">1.1.1</span> <span class="toctext">Windows</span></a></li>
<li class="toclevel-3 tocsection-4"><a href="#macOS"><span class="tocnumber">1.1.2</span> <span class="toctext">macOS</span></a></li>
<li class="toclevel-3 tocsection-5"><a href="#Linux"><span class="tocnumber">1.1.3</span> <span class="toctext">Linux</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="toclevel-1 tocsection-6"><a href="#Creating_a_Windows_Executable"><span class="tocnumber">2</span> <span class="toctext">Creating a Windows Executable</span></a>
<ul>
<li class="toclevel-2 tocsection-7"><a href="#Platform_Specific_Instructions"><span class="tocnumber">2.1</span> <span class="toctext">Platform Specific Instructions</span></a>
<ul>
<li class="toclevel-3 tocsection-8"><a href="#Windows_2"><span class="tocnumber">2.1.1</span> <span class="toctext">Windows</span></a>
<ul>
<li class="toclevel-4 tocsection-9"><a href="#Windows_icon"><span class="tocnumber">2.1.1.1</span> <span class="toctext">Windows icon</span></a></li>
</ul>
</li>
<li class="toclevel-3 tocsection-10"><a href="#Linux_.2F_OS_X"><span class="tocnumber">2.1.2</span> <span class="toctext">Linux / OS X</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="toclevel-1 tocsection-11"><a href="#Creating_a_macOS_Application"><span class="tocnumber">3</span> <span class="toctext">Creating a macOS Application</span></a>
<ul>
<li class="toclevel-2 tocsection-12"><a href="#Official_Distribution_and_the_App_Store"><span class="tocnumber">3.1</span> <span class="toctext">Official Distribution and the App Store</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-13"><a href="#Distribution_for_Linux"><span class="tocnumber">4</span> <span class="toctext">Distribution for Linux</span></a>
<ul>
<li class="toclevel-2 tocsection-14"><a href="#Linux_2"><span class="tocnumber">4.1</span> <span class="toctext">Linux</span></a></li>
<li class="toclevel-2 tocsection-15"><a href="#Debian"><span class="tocnumber">4.2</span> <span class="toctext">Debian</span></a></li>
<li class="toclevel-2 tocsection-16"><a href="#AppImages"><span class="tocnumber">4.3</span> <span class="toctext">AppImages</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-17"><a href="#Android"><span class="tocnumber">5</span> <span class="toctext">Android</span></a>
<ul>
<li class="toclevel-2 tocsection-18"><a href="#Compiling_from_source"><span class="tocnumber">5.1</span> <span class="toctext">Compiling from source</span></a></li>
<li class="toclevel-2 tocsection-19"><a href="#Using_APKTool"><span class="tocnumber">5.2</span> <span class="toctext">Using APKTool</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-20"><a href="#iOS"><span class="tocnumber">6</span> <span class="toctext">iOS</span></a></li>
<li class="toclevel-1 tocsection-21"><a href="#Distribution_on_the_web"><span class="tocnumber">7</span> <span class="toctext">Distribution on the web</span></a></li>
<li class="toclevel-1 tocsection-22"><a href="#Community_Tools"><span class="tocnumber">8</span> <span class="toctext">Community Tools</span></a></li>
<li class="toclevel-1 tocsection-23"><a href="#Other_Languages"><span class="tocnumber">9</span> <span class="toctext">Other Languages</span></a></li>
</ul>
</div>

<h2><span class="mw-headline" id="Create_a_.love-file">Create a .love-file</span></h2>
<p>Please note that some operating systems use case-sensitive paths. To avoid unnecessary hassle make sure that the path specifications you use in code matches that of your folders and files.
</p><p>To create a .love-file you have to create a zip file of the whole game directory. Make sure that your main.lua is in the root of the archive, e.g. if you have
</p>
<pre>   &lt;somedir&gt;\SuperGame\gfx\character.png
   &lt;somedir&gt;\SuperGame\main.lua
   &lt;somedir&gt;\SuperGame\conf.lua
</pre>
<p>then you must ensure the zip file contains
</p>
<pre>   gfx\character.png
   main.lua
   conf.lua
</pre>
<p>and <b>not</b> the directory <tt style="font-size:1.3em">SuperGame\</tt>.
</p><p>Once you have your zip file you simply rename the ending from .zip to .love and you are done!
</p><p>If you're using a case-insensitive file system (e.g. Windows), it's advisable to move the .love file to some place other than the folder where your game is, and test again. This will reveal any case sensitivity problems that other users may run into when trying to run your game. If it's run in the same folder, it will find there the files that it can't find in the .love file, so you have to move it before testing. A good place to move it is a folder within your game directory, e.g. <code>love/MyGame.love</code>.
</p>
<h3><span class="mw-headline" id="Platform_Specific_Notes">Platform Specific Notes</span></h3>
<h4><span class="mw-headline" id="Windows">Windows</span></h4>
<p>Windows supports creation of zip files out of the box via right-click menu. For detailed instructions see <a rel="nofollow" class="external text" href="https://support.microsoft.com/en-us/help/14200/windows-compress-uncompress-zip-files">Compress and uncompress files (zip files)</a>.
</p>
<h4><span class="mw-headline" id="macOS">macOS</span></h4>
<p>Inside the game folder, select the game files and folders, right-click/Ctrl+click and pick <b>Compress n items</b>. Then rename the resulting <code>.zip</code> file to have a <code>.love</code> ending.
</p><p>Alternatively, you can use the terminal. Navigate inside the game folder and run:
</p>
<pre>   zip -9 -r SuperGame.love .
</pre>
<h4><span class="mw-headline" id="Linux">Linux</span></h4>
<p>Assuming your current directory is <tt style="font-size:1.3em">SuperGame/</tt> you can create the .love file from command line directly using
</p>
<pre>   zip -9 -r SuperGame.love .
</pre>
<h2><span class="mw-headline" id="Creating_a_Windows_Executable">Creating a Windows Executable</span></h2>
<p>Once you have packed your game into a .love file you can create a game executable that directly runs your game.
</p><p>For this you have to append your .love file to the love.exe file that comes with the official LÖVE .zip file. The resulting file is your game executable. 
</p><p>Once you have your game executable you can pack it together with all the other DLL files of the official LÖVE .zip file into a new .zip file and share this with the world.
</p><p><b>Note:</b> Some people do not have a 64-bit version of Windows, so it is a good idea to either distribute both 32- and 64-bit versions of your game, or only distribute a 32-bit version.
</p>
<h3><span class="mw-headline" id="Platform_Specific_Instructions">Platform Specific Instructions</span></h3>
<h4><span class="mw-headline" id="Windows_2">Windows</span></h4>
<p>To create your game executable under windows use the command line to run
</p>
<pre>   copy /b love.exe+SuperGame.love SuperGame.exe
</pre>
<p><b>Note</b>: You may have to run the command as an administrator on your computer. You can do this by going to <b>Windows\System32</b> and right clicking on <b>cmd.exe</b> and selecting the option <b>Run as administrator</b>. After this, you must type <b>cd C:\Program Files\LOVE\</b> (or whatever your default love directory is), then you may continue as normal.
</p><p>Alternatively you can create a .bat (e.g. create_game_exe.bat) file with the contents
</p>
<pre>   copy /b love.exe+%1 "%~n1.exe"
</pre>
<p>and then you can simply drag your SuperGame.love file onto the .bat file and it will create the file SuperGame.love.exe which you could then use for distribution.
</p><p>If you are using <b>PowerShell</b> instead of cmd, then the command used is a little bit different:
</p>
<pre>   cmd /c copy /b love.exe+SuperGame.love SuperGame.exe
</pre>
<p>This method creates a <b>fused</b> game.
</p>
<h5><span class="mw-headline" id="Windows_icon">Windows icon</span></h5>
<p>You can use your own icon images using tools like for example the freeware <a rel="nofollow" class="external text" href="http://www.angusj.com/resourcehacker/">Resource Hacker</a>.
</p><p><a rel="nofollow" class="external text" href="https://youtu.be/WTk_HJdXVNQ?t=2m22s">Video tutorial</a> and <a rel="nofollow" class="external text" href="http://gamedev.stackexchange.com/a/121947/9093">step-by-step instructions</a> are available.
</p>
<h4><span class="mw-headline" id="Linux_.2F_OS_X">Linux / OS X</span></h4>
<p>You can create the windows executable from Linux and OS X using the command line.
</p><p>First download the official zipped 32 or 64 bit executable (<b>not</b> the installer) from <a rel="nofollow" class="external free" href="https://www.love2d.org/">https://www.love2d.org/</a>. 32 bit games can run on 64bit Windows systems but not vice versa, so to save time on smaller games, you can provide 32bit only.
</p><p>Then in the command line/terminal run
</p>
<pre>   cat love.exe SuperGame.love &gt; SuperGame.exe
</pre>
<p>to obtain the game executable <tt style="font-size:1.3em">SuperGame.exe</tt>.
</p><p><br />
When distributing the windows executable you will need to include the dll files that came in the folder of the love.exe you used (so don't mix the 32 bit dll's with the 64 bit dll's). Without these files you will get error message when attempting to run SuperGame.exe on a windows machine.
</p><p>The contents of your final distribution folder should look something like this:
</p>
<ul><li> SDL2.dll</li>
<li> OpenAL32.dll (note: this file is different in the 64 bit download despite still being called 'OpenAL32.dll')</li>
<li> SuperGame.exe</li>
<li> license.txt (note: the license <b>requires</b> that it be included in any further distribution)</li>
<li> love.dll</li>
<li> lua51.dll</li>
<li> mpg123.dll</li>
<li> msvcp120.dll</li>
<li> msvcr120.dll</li></ul>
<h2><span class="mw-headline" id="Creating_a_macOS_Application">Creating a macOS Application</span></h2>
<p>For official/commercial distribution (e.g., in the Mac App Store) skip to the next section, <a href="#Official_Distribution_and_the_App_Store" title="Game Distribution">Official Distribution and the App Store</a>.
</p><p>Once you have your game prepared as .love file you can make your game available for macOS users by following the steps below (<a rel="nofollow" class="external text" href="https://youtu.be/SU2RpGdezP4">video tutorial</a> available):
</p>
<ol><li> Download and extract the Mac version of LÖVE from <a rel="nofollow" class="external text" href="https://www.love2d.org">the LÖVE homepage</a></li>
<li> Rename <tt>love.app</tt> to <tt>SuperGame.app</tt></li>
<li> Copy your <tt>SuperGame.love</tt> to <tt>SuperGame.app/Contents/Resources/</tt> (right-click/Ctrl+click and pick "Show Package Content" on OS X). This will result in the game running in fused mode.</li>
<li> Modify <tt>SuperGame.app/Contents/Info.plist</tt> (see below for details)</li>
<li> Zip the <tt>SuperGame.app</tt> folder (e.g. to SuperGame_osx.zip) and distribute it. Enable the <i>-y</i> flag of zip to keep the symlinks.</li></ol>
<p>When modifying <tt>SuperGame.app/Contents/Info.plist</tt> make sure to change the string values of the following XML-tags:
</p>
<ul><li> <tt>CFBundleIdentifier</tt></li>
<li> <tt>CFBundleName</tt></li></ul>
<p>and remove the section <tt>UTExportedTypeDeclarations</tt> which ensures that macOS does not associate all .love files with your app. Overall the changes should be something like this:
</p>
<table border="1" cellpadding="1" cellspacing="0">
<tr>
<th width="300">Original Info.plist
</th>
<th width="300">Modified Info.plist
</th></tr>
<tr style="vertical-align: top;">
<td>
<pre>   ...
   &lt;key&gt;CFBundleIdentifier&lt;/key&gt;
   &lt;string&gt;<b>org.love2d.love</b>&lt;/string&gt;
   ...
   &lt;key&gt;CFBundleName&lt;/key&gt;
   &lt;string&gt;<b>LÖVE</b>&lt;/string&gt;
   ...
   &lt;key&gt;NSPrincipalClass&lt;/key&gt;
   &lt;string&gt;NSApplication&lt;/string&gt;
   <b>&lt;key&gt;UTExportedTypeDeclarations&lt;/key&gt;</b>
   <b>&lt;array&gt;</b>
   <b>...</b>
   <b>&lt;/array&gt;</b>
   &lt;/dict&gt;
   &lt;/plist&gt;
</pre>
</td>
<td>
<pre>   ...
   &lt;key&gt;CFBundleIdentifier&lt;/key&gt;
   &lt;string&gt;<b>com.SuperCompany.SuperGame</b>&lt;/string&gt;
   ...
   &lt;key&gt;CFBundleName&lt;/key&gt;
   &lt;string&gt;<b>SuperGame</b>&lt;/string&gt;
   ...
   &lt;key&gt;NSPrincipalClass&lt;/key&gt;
   &lt;string&gt;NSApplication&lt;/string&gt;
   &lt;/dict&gt;
   &lt;/plist&gt;
</pre>
</td></tr></table>
<h4><span class="mw-headline" id="Official_Distribution_and_the_App_Store">Official Distribution and the App Store</span></h4>
<p>Compiling Mac apps requires a Mac running macOS with XCode installed (you can install XCode from the app store).
</p>
<ol><li> Download the <a rel="nofollow" class="external text" href="https://github.com/love2d/love/releases/tag/11.3">love source code</a></li>
<li> Download the required frameworks <a rel="nofollow" class="external text" href="sdk.html">from here</a> and place them in <code>/Library/Frameworks/</code>.</li>
<li> Open the Xcode project found at <code>platform/xcode/love.xcodeproj</code>. You will build the <code>love-macosx</code> target as described below.</li>
<li> In XCode, Modify the macOS icons in <code>Images.xcassets</code></li>
<li> In XCode, Update the <code>love-macosx.plist</code> (see instructions above)</li>
<li> Add your .love file to the "Copy Bundle Resources" Build Phase <br /><a href="file_addlovefiletoxcodebundleresources.html" class="image"><img alt="addLoveFileToXcodeBundleResources.png" src="600px_addlovefiletoxcodebundleresources.png" width="600" height="394" srcset="/w/images/thumb/0/02/addLoveFileToXcodeBundleResources.png/900px-addLoveFileToXcodeBundleResources.png 1.5x, /w/images/thumb/0/02/addLoveFileToXcodeBundleResources.png/1200px-addLoveFileToXcodeBundleResources.png 2x" /></a></li>
<li> Follow <a rel="nofollow" class="external text" href="https://developer.apple.com/macos/distribution/">Apple's guide for distributing Mac apps</a></li></ol>
<h2><span class="mw-headline" id="Distribution_for_Linux">Distribution for Linux</span></h2>
<p>For Linux there is not yet a simple way to distribute your game. The general approach here is to point to the official LÖVE packages at <a rel="nofollow" class="external free" href="https://www.love2d.org">https://www.love2d.org</a>. Once the package is installed, the .love packages are usually automatically executed using the installed LÖVE package or using the command line:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1">love SuperGame.love</pre></div></div>
<p>Make sure to include a <a href="config_files.html" title="Config Files"><code>conf.lua</code> file</a> with at least the LÖVE version used.
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="lua source-lua"><pre class="de1"><span class="kw1">function</span> love<span class="sy0">.</span>conf<span class="br0">&#40;</span>t<span class="br0">&#41;</span>
    t<span class="sy0">.</span>version <span class="sy0">=</span> <span class="st0">&quot;11.2&quot;</span>
<span class="kw1">end</span></pre></div></div>
<p>A common mistake is trying to fuse the love Linux binary with a love file:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1"><span class="kw2">cat</span> <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>love SuperGame.love <span class="sy0">&gt;</span> SuperGame
<span class="kw2">chmod</span> a+x .<span class="sy0">/</span>SuperGame</pre></div></div>
<p>Please keep in mind, while the binary `SuperGame` will run on your machine, and other Linux distros that have the same architecture and similar version libraries, there's a good chance that <b>it will not run on many other Linux distros</b>.
</p>
<h4><span class="mw-headline" id="Linux_2">Linux</span></h4>
<p>It has not been yet proven to work in all scenarios, but this a way of distributing your game for Linux.
</p>
<ol><li> Download the appropriate Linux version of love (with file extension .tar.gz), either x86_64, or i686. <a rel="nofollow" class="external text" href="https://bitbucket.org/rude/love/downloads/">Download Page</a></li>
<li> Extract the <tt>.tar.gz</tt>. You can do this by either right clicking the file and pressing “extract file”, or extract it via the command line: <div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1"> <span class="kw2">tar</span> <span class="re5">-xvzf</span> love.tar.gz</pre></div></div></li>
<li> Move your <tt>game.love</tt> file inside the extracted folder.</li>
<li> Edit the file called <tt>love</tt> by replacing "$@" with "${LOVE_LAUNCHER_LOCATION}/game.love”</li></ol>
<h4><span class="mw-headline" id="Debian">Debian</span></h4>
<p>There is a policy for including LÖVE games in the Debian archive. It can be followed to create a package for a game even if it is not intended to include it in the archive.
</p><p><a rel="nofollow" class="external text" href="https://wiki.debian.org/Games/Love2d">Packaging Love2d</a>
</p>
<h4><span class="mw-headline" id="AppImages">AppImages</span></h4>
<p>The AppImage format is a format for packaging applications in a way that allows them to run on a variety of different target systems (base operating systems, distributions) without further modification. The whole kit can be downloaded from <a rel="nofollow" class="external text" href="https://github.com/probonopd/AppImageKit/">here</a>.
</p><p>In order to package games using AppImage, the libraries and dependencies required by love need to be gathered, which can be done easily using <a rel="nofollow" class="external text" href="https://github.com/proot-me/proot/blob/master/doc/care/manual.rst#care">CARE</a> (available packaged in the Ubuntu repositories) by executing:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1">care <span class="re5">-o</span> love.tar.gz love</pre></div></div>.
<p>This program makes an archive, which contains the love executable and its dependencies and related files kept in the way of your system.
Secondly, the game's .love file needs to be 'fused' by the means shown in the above section. Now, the files need to be placed in the following way in a new directory:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="text source-text"><pre class="de1">Application Directory/
├── &lt;game name&gt;.desktop  --&gt; This file contains path to the program's icon file,
│                            the name of the program and the command to execute it.
├── &lt;game name&gt;.png      --&gt; Your game's icon
└── usr/
    ├── bin/    --&gt; Your fused binary needs to be placed here
    ├── lib/    --&gt; Your libraries need to be placed here
    └── share/  --&gt; Your (or LÖVE's) data files (and other things) need to be placed here, if any</pre></div></div>
<p>Finally, the directory needs to be converted into an AppImage, using AppImageAssistant available in the kit.
More information can be found in the <a rel="nofollow" class="external text" href="https://docs.appimage.org/">AppImage documentation</a>.
</p>
<h2><span class="mw-headline" id="Android">Android</span></h2>
<h3><span class="mw-headline" id="Compiling_from_source">Compiling from source</span></h3>
<p>First clone the android LÖVE project: 
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1"><span class="kw2">git clone</span> <span class="re5">--recurse-submodules</span> https:<span class="sy0">//</span>github.com<span class="sy0">/</span>love2d<span class="sy0">/</span>love-android</pre></div></div>
<p>(optionally with <code>--depth 1</code> to save download times)
Then, download the Android SDK (API 30) and Android NDK (exactly version 21.3.6528147 or r21d).
</p><p>Set these environment variables
</p>
<ul><li> <code>ANDROID_HOME</code> to your Android SDK location.</li></ul>
<p>Put the game (exactly named "game.love") in the directory (project)/app/src/main/assets (create the directory if necessary).
</p><p>Change the app launcher name (project)/app/src/embed/AndroidManifest.xml. Change the package name, version code, and version string in (project)/app/build.gradle
</p><p>For Linux or macOS systems it may be necessary set the executable permission:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1"><span class="kw2">chmod</span> +x gradlew</pre></div></div>
<p>And finally to generate the APK, do:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1">.<span class="sy0">/</span>gradlew assembleEmbedRelease</pre></div></div>
<p>The APK will be in (project)/app/build/outputs/apk/embed/release/app-embed-release-unsigned.apk
</p><p>And if you need to generate AAB to be uploaded to Play Consode, do:
</p>
<div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="bash source-bash"><pre class="de1">.<span class="sy0">/</span>gradlew bundleEmbedReleaase</pre></div></div>
<p>The AAB will be in (project)/app/build/outputs/bundle/embedRelease/app-embed-release.aab
</p><p>For more information see the <a rel="nofollow" class="external text" href="https://github.com/love2d/love-android">GitHub repository</a>.
</p>
<h3><span class="mw-headline" id="Using_APKTool">Using APKTool</span></h3>
<table class="notice" bgcolor="gold" style="border-style:solid;border-width:1px;-moz-border-radius:3px;border-radius:3px;" align="center" width="80%">
<tr>
<td width="1"> <a href="file_o.html" class="image"><img alt="O.png" src="o.png" width="64" height="64" /></a>
</td>
<td>This method is now deprecated as <a rel="nofollow" class="external text" href="https://android-developers.googleblog.com/2020/08/recent-android-app-bundle-improvements.html">Play Store will mandate Android Application Bundle in 2021</a> and this method is subject to deletion!
</td>
<td width="1">&#160;
</td></tr></table><br />
<p>Please see <a href="apktool.html" title="Game Distribution/APKTool">Game Distribution/APKTool</a> for more information.
</p>
<h2><span class="mw-headline" id="iOS">iOS</span></h2>
<p>Basic instructions for iOS (without fusing) are available at <a href="getting_started.html#iOS" title="Getting Started">Getting_Started#iOS</a>.
</p>
<table class="notice" bgcolor="gold" style="border-style:solid;border-width:1px;-moz-border-radius:3px;border-radius:3px;" align="center" width="80%">
<tr>
<td width="1"> <a href="file_o.html" class="image"><img alt="O.png" src="o.png" width="64" height="64" /></a>
</td>
<td>Due to Apple restrictions, fusing for iOS is only possible under macOS!
</td>
<td width="1">&#160;
</td></tr></table><br />
<p>To <b>fuse</b> your game into the LÖVE engine:
</p>
<ol><li> Get iOS source code from <a rel="nofollow" class="external text" href="love2d.html">love2d.org</a>.</li>
<li> Open platform/xcode/love.xcodeproj with Xcode.</li>
<li> Select love-ios target (not love-macosx)</li>
<li> Select <b>Build Phases</b> of the 'love-ios' target and add your 'game.love' file into <b>Copy Bundle Resources</b>.</li>
<li> Build the project.</li>
<li> Your game should appear on your iOS device as an app.</li></ol>
<p>If you can't find the relevant XCode UI elements, you can refer to <a rel="nofollow" class="external text" href="https://youtu.be/MsYanwcU42E">video tutorial on YouTube</a>.
</p>
<h2><span class="mw-headline" id="Distribution_on_the_web">Distribution on the web</span></h2>
<p>Publishing as a HTML5 or JavaScript game is possible thanks to <a rel="nofollow" class="external text" href="https://github.com/TannerRogalsky/love.js">TannerRogalsky/love.js</a>. Threads for example are not supported though and playback of course depends on the browser.
</p><p>A more modern fork of the above project is maintained at <a rel="nofollow" class="external text" href="https://github.com/Davidobot/love.js">Davidobot/love.js</a> and supports LÖVE v11.3.
</p>
<h2><span class="mw-headline" id="Community_Tools">Community Tools</span></h2>
<p>There are a few tools developed by the community to help with game distribution.
</p>
<ul><li> <a rel="nofollow" class="external text" href="https://github.com/pfirsich/makelove">makelove</a>, advanced multi-platform tool to fuse your game written in Python 3. Supports Windows and Linux with AppImage.</li>
<li> <a rel="nofollow" class="external text" href="https://github.com/MisterDA/love-release">love-release</a> (<a rel="nofollow" class="external text" href="viewtopic.html">forum</a>), a Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux, with much more features.</li>
<li> <a rel="nofollow" class="external text" href="https://github.com/camchenry/boon">boon</a> (<a rel="nofollow" class="external text" href="viewtopic1.html">forum</a>), a multi-platform, easy to use tool supporting Windows, macOS, Linux.</li>
<li> <a rel="nofollow" class="external text" href="">Love Distrubution Pack</a>[sic], a windows-only tool that can create .love files and exes.</li>
<li> <a rel="nofollow" class="external text" href="https://www.love2d.org/forums/viewtopic.php?f=5&amp;t=30259">love-dist</a>, a windows-only tool that can <a href="luac.html" title="LuaC">LuaC</a> your files and create an exe.</li>
<li> <a rel="nofollow" class="external text" href="https://github.com/dmoa/love-export">love-export</a>, a fast and simple command-line tool that builds binaries for you. Supports Windows, MacOS, and Linux.</li></ul>
<h2><span class="mw-headline" id="Other_Languages">Other Languages</span></h2>
<div class="i18n">
<p><a href="game_distribution_dansk.html" title="Game Distribution (Dansk)">Dansk</a>&#160;&#8211;
<a href="game_distribution_deutsch.html" title="Game Distribution (Deutsch)">Deutsch</a>&#160;&#8211;
<strong class="selflink">English</strong>&#160;&#8211; 
<a href="" class="new" title="Game Distribution (Español) (page does not exist)">Español</a>&#160;&#8211;
<a href="game_distribution_fran_ais.html" title="Game Distribution (Français)">Français</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Indonesia) (page does not exist)">Indonesia</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Italiano) (page does not exist)">Italiano</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Lietuviškai) (page does not exist)">Lietuviškai</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Magyar) (page does not exist)">Magyar</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Nederlands) (page does not exist)">Nederlands</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Polski) (page does not exist)">Polski</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Português) (page does not exist)">Português</a>&#160;&#8211;
<a href="game_distribution_rom_n.html" title="Game Distribution (Română)">Română</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Slovenský) (page does not exist)">Slovenský</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Suomi) (page does not exist)">Suomi</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Svenska) (page does not exist)">Svenska</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Türkçe) (page does not exist)">Türkçe</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Česky) (page does not exist)">Česky</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Ελληνικά) (page does not exist)">Ελληνικά</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Български) (page does not exist)">Български</a>&#160;&#8211;
<a href="game_distribution1.html" title="Game Distribution (Русский)">Русский</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (Српски) (page does not exist)">Српски</a>&#160;&#8211;
<a href="game_distribution2.html" title="Game Distribution (Українська)">Українська</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (עברית) (page does not exist)">עברית</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (ไทย) (page does not exist)">ไทย</a>&#160;&#8211;
<a href="game_distribution3.html" title="Game Distribution (日本語)">日本語</a>&#160;&#8211;
<a href="" class="new" title="Game Distribution (正體中文) (page does not exist)">正體中文</a>&#160;&#8211;
<a href="game_distribution4.html" title="Game Distribution (简体中文)">简体中文</a>&#160;&#8211;
<a href="game_distribution_ti_ng_vi_t.html" title="Game Distribution (Tiếng Việt)">Tiếng Việt</a>&#160;&#8211;
<a href="game_distribution5.html" title="Game Distribution (한국어)">한국어</a> 
<br />
<span style="text-align:right;"><i><a href="help_i18n.html" title="Help:i18n">More info</a></i></span>
</p>
</div>

<!-- 
NewPP limit report
CPU time usage: 0.200 seconds
Real time usage: 0.208 seconds
Preprocessor visited node count: 430/1000000
Preprocessor generated node count: 934/1000000
Post‐expand include size: 4195/2097152 bytes
Template argument size: 1844/2097152 bytes
Highest expansion depth: 4/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key love2d_wiki:pcache:idhash:423-0!*!0!!en!5!* and timestamp 20210227122803 and revision id 26223
 -->
</div><div class="printfooter">
Retrieved from "<a dir="ltr" href="">http://love2d.org/w/index.php?title=Game_Distribution&amp;oldid=26223</a>"</div>
					<div id='catlinks' class='catlinks'><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="" title="Special:Categories">Category</a>: <ul><li><a href="category_l_ve.html" title="Category:LÖVE">LÖVE</a></li></ul></div></div>					<!-- end content -->
										<div class="visualClear"></div>
				</div>
			</div>
		</div>
		<div id="column-one">
			<div class="portlet" id="p-personal" role="navigation">
				<h5>Personal tools</h5>

				<div class="pBody">
					<ul>
													<li id="pt-login"><a href="" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li>
											</ul>
				</div>
			</div>
			<div class="portlet" id="p-logo" role="banner">
				<a href="index.html" class="mw-wiki-logo" title="Visit the main page"></a>
			</div>
				<div class="generated-sidebar portlet" id="p-documentation" role="navigation">
		<h5>documentation</h5>
		<div class='pBody'>
							<ul>
											<li id="n-love"><a href="love.html">love</a></li>
											<li id="n-love.audio"><a href="love1.html">love.audio</a></li>
											<li id="n-love.data"><a href="love2.html">love.data</a></li>
											<li id="n-love.event"><a href="love3.html">love.event</a></li>
											<li id="n-love.filesystem"><a href="love4.html">love.filesystem</a></li>
											<li id="n-love.font"><a href="love5.html">love.font</a></li>
											<li id="n-love.graphics"><a href="love6.html">love.graphics</a></li>
											<li id="n-love.image"><a href="love7.html">love.image</a></li>
											<li id="n-love.joystick"><a href="love8.html">love.joystick</a></li>
											<li id="n-love.keyboard"><a href="love9.html">love.keyboard</a></li>
											<li id="n-love.math"><a href="love10.html">love.math</a></li>
											<li id="n-love.mouse"><a href="love11.html">love.mouse</a></li>
											<li id="n-love.physics"><a href="love12.html">love.physics</a></li>
											<li id="n-love.sound"><a href="love13.html">love.sound</a></li>
											<li id="n-love.system"><a href="love14.html">love.system</a></li>
											<li id="n-love.thread"><a href="love15.html">love.thread</a></li>
											<li id="n-love.timer"><a href="love16.html">love.timer</a></li>
											<li id="n-love.touch"><a href="love17.html">love.touch</a></li>
											<li id="n-love.video"><a href="love18.html">love.video</a></li>
											<li id="n-love.window"><a href="love19.html">love.window</a></li>
											<li id="n-lua-enet"><a href="lua_enet.html">lua-enet</a></li>
											<li id="n-luasocket"><a href="socket.html">luasocket</a></li>
											<li id="n-utf8"><a href="utf8.html">utf8</a></li>
									</ul>
					</div>
		</div>
		<div class="generated-sidebar portlet" id="p-navigation" role="navigation">
		<h5>Navigation</h5>
		<div class='pBody'>
							<ul>
											<li id="n-Home"><a href="love2d1.html" rel="nofollow">Home</a></li>
											<li id="n-Forums"><a href="forums.html" rel="nofollow">Forums</a></li>
											<li id="n-Issue-tracker"><a href="https://github.com/love2d/love/issues" rel="nofollow">Issue tracker</a></li>
									</ul>
					</div>
		</div>
		<div class="generated-sidebar portlet" id="p-wiki_navigation" role="navigation">
		<h5>wiki navigation</h5>
		<div class='pBody'>
							<ul>
											<li id="n-mainpage-description"><a href="index.html" title="Visit the main page [z]" accesskey="z">Main page</a></li>
											<li id="n-recentchanges"><a href="" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li>
											<li id="n-randompage"><a href="" title="Load a random page [x]" accesskey="x">Random page</a></li>
									</ul>
					</div>
		</div>
			<div id="p-search" class="portlet" role="search">
			<h5><label for="searchInput">Search</label></h5>

			<div id="searchBody" class="pBody">
				<form action="w.html" id="searchform">
					<input type='hidden' name="title" value="Special:Search"/>
					<input type="search" name="search" placeholder="Search" title="Search LOVE [f]" accesskey="f" id="searchInput" />
					<input type="submit" name="go" value="Go" title="Go to a page with this exact name if exists" id="searchGoButton" class="searchButton" />&#160;
						<input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton" />
				</form>

							</div>
		</div>
			<div class="portlet" id="p-tb" role="navigation">
			<h5>Tools</h5>

			<div class="pBody">
				<ul>
											<li id="t-whatlinkshere"><a href="" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li>
											<li id="t-recentchangeslinked"><a href="" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li>
											<li id="t-specialpages"><a href="" title="A list of all special pages [q]" accesskey="q">Special pages</a></li>
											<li id="t-print"><a href="" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li>
											<li id="t-permalink"><a href="" title="Permanent link to this revision of the page">Permanent link</a></li>
											<li id="t-info"><a href="">Page information</a></li>
											<li id="t-smwbrowselink"><a href="" rel="smw-browse">Browse properties</a></li>
									</ul>
							</div>
		</div>
			</div><!-- end of the left (by default at least) column -->
		<div class="visualClear"></div>
					<div id="footer" role="contentinfo">
						<div id="f-copyrightico">
									<a href="http://www.gnu.org/copyleft/fdl.html"><img src="gnu_fdl.png" alt="GNU Free Documentation License 1.3" width="88" height="31" /></a>
							</div>
					<div id="f-poweredbyico">
									<a href="http://www.mediawiki.org/"><img src="poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" width="88" height="31" /></a>
									<a href="https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki"><img src="smw_button.png" alt="Powered by Semantic MediaWiki" width="88" height="31" /></a>
							</div>
					<ul id="f-list">
									<li id="lastmod"> This page was last modified on 22 February 2021, at 12:11.</li>
									<li id="viewcount">This page has been accessed 685,104 times.</li>
									<li id="copyright">Content is available under <a class="external" rel="nofollow" href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License 1.3</a> unless otherwise noted.</li>
									<li id="privacy"><a href="love_privacy_policy.html" title="LOVE:Privacy policy">Privacy policy</a></li>
									<li id="about"><a href="love_about.html" title="LOVE:About">About LOVE</a></li>
									<li id="disclaimer"><a href="love_general_disclaimer.html" title="LOVE:General disclaimer">Disclaimers</a></li>
							</ul>
		</div>
		</div>
		<script>/*<![CDATA[*/window.jQuery && jQuery.ready();/*]]>*/</script><script>if(window.mw){
mw.loader.state({"site":"loading","user":"ready","user.groups":"ready"});
}</script>
<script>if(window.mw){
mw.loader.load(["ext.smw.tooltips","mediawiki.toc","mediawiki.action.view.postEdit","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest"],null,true);
}</script>
<script>if(window.mw){
document.write("\u003Cscript src=\"http://love2d.org/w/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=site\u0026amp;only=scripts\u0026amp;skin=love\u0026amp;*\"\u003E\u003C/script\u003E");
}</script>
<script>if(window.mw){
mw.config.set({"wgBackendResponseTime":74});
}</script></body></html>
